package org.jeecg.modules.manage.entity;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: 退款记录
 * @Author: yfkj
 * @Date:   2023-04-10
 * @Version: V1.0
 */
@Data
@TableName("caishui_refund_record")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="caishui_refund_record对象", description="退款记录")
public class CaishuiRefundRecord implements Serializable {
    private static final long serialVersionUID = 1L;


	/**id*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "id")
    private String id;

	/**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;

	/**创建日期*/
    @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;

	/**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;

	/**更新日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;

	/**税源地ID*/
	@Excel(name = "服务公司", width = 15, dictTable = "caishui_service_company", dicText = "name", dicCode = "id")
	@Dict(dictTable = "caishui_service_company", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "税源地ID")
    private String companyId;

	/**商户ID*/
	@Excel(name = "签约商户", width = 15, dictTable = "caishui_business", dicText = "name", dicCode = "id")
	@Dict(dictTable = "caishui_business", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "商户ID")
    private String businessId;

	/**租户ID*/
    @ApiModelProperty(value = "租户ID")
    private Long tenantId;

    /**用户ID*/
    @ApiModelProperty(value = "用户ID")
    private String userId;

    /**渠道商户ID*/
    @ApiModelProperty(value = "渠道商户ID")
    private String channelBusinessId;

	/**业务参考号*/
	@Excel(name = "业务参考号", width = 15)
    @ApiModelProperty(value = "业务参考号")
    private String yurRef;

	/**付方账号*/
	@Excel(name = "付方账号", width = 15)
    @ApiModelProperty(value = "付方账号")
    private String payAccount;

	/**付方户名*/
	@Excel(name = "付方户名", width = 15)
    @ApiModelProperty(value = "付方户名")
    private String payName;

	/**付方记账子单元编号*/
	@Excel(name = "付方记账子单元编号", width = 15)
    @ApiModelProperty(value = "付方记账子单元编号")
    private String payDmanbr;

	/**付方记账子单元名称*/
	@Excel(name = "付方记账子单元名称", width = 15)
    @ApiModelProperty(value = "付方记账子单元名称")
    private String payDmanam;

	/**收方账号*/
	@Excel(name = "收方账号", width = 15)
    @ApiModelProperty(value = "收方账号")
    private String crtAccount;

	/**收方户名*/
	@Excel(name = "收方户名", width = 15)
    @ApiModelProperty(value = "收方户名")
    private String crtName;

	/**开户银行*/
	@Excel(name = "开户银行", width = 15)
    @ApiModelProperty(value = "开户银行")
    private String bankName;

	/**开户支行*/
	@Excel(name = "开户支行", width = 15)
    @ApiModelProperty(value = "开户支行")
    private String bankBranch;

	/**开户地*/
	@Excel(name = "开户地", width = 15)
    @ApiModelProperty(value = "开户地")
    private String bankAddress;

    /**联行号*/
    @Excel(name = "联行号", width = 15)
    @ApiModelProperty(value = "联行号")
    private String bankInterbankNumber;

	/**退款金额*/
	@Excel(name = "退款金额", width = 15)
    @ApiModelProperty(value = "退款金额")
    private Double money;

	/**手续费*/
	@Excel(name = "手续费", width = 15)
    @ApiModelProperty(value = "手续费")
    private Double serviceFee;

	/**用途/备注/说明*/
	@Excel(name = "用途/备注/说明", width = 15)
    @ApiModelProperty(value = "用途/备注/说明")
    private String remark;

	/**请求状态：AUT-等待审批，NTE-终审完毕，BNK，WRF-银行处理中，FIN-完成，OPR-数据接收中*/
	@Excel(name = "请求状态", width = 15, dicCode = "req_sts")
    @ApiModelProperty(value = "请求状态")
    @Dict(dicCode = "req_sts")
    private String reqSts;

	/**业务处理结果：S-成功(银行支付成功)，F-失败(银行支付失败)，B-退票(银行支付被退票)，R-否决(企业审批否决)，D-过期(企业过期不审批)，C-撤消(企业撤销)，U-银行挂账	*/
	@Excel(name = "业务处理结果", width = 15, dicCode = "rtn_flg")
	@Dict(dicCode = "rtn_flg")
    @ApiModelProperty(value = "业务处理结果")
    private String rtnFlg;

	/**银行处理失败原因*/
	@Excel(name = "银行处理失败原因", width = 15)
    @ApiModelProperty(value = "银行处理失败原因")
    private String failReason;

	/**状态：0-待提交，1-待审核，2，已驳回，3-银行处理中，4-退款成功，5-退款失败*/
	@Excel(name = "状态", width = 15, dicCode = "refund_record_status")
    @ApiModelProperty(value = "状态")
    @Dict(dicCode = "refund_record_status")
    private Integer status;

	/**驳回理由*/
	@Excel(name = "驳回理由", width = 15)
    @ApiModelProperty(value = "驳回理由")
    private String rejectReason;

    /**提交时间*/
    @Excel(name = "提交时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "提交时间")
    private Date submitTime;

	/**审核时间*/
	@Excel(name = "审核时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "审核时间")
    private Date checkTime;

	/**银行处理时间*/
	@Excel(name = "银行处理时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "银行处理时间")
    private Date finishTime;

    /**发起人：1-客户，2-代理*/
    @ApiModelProperty(value = "发起人")
    private Integer initiate;


	@TableField(exist = false)
    private String captcha;

}
